Image scaling is a widely known image processing utility used to resize a digital image. Image scaling has widespread applications in multi-media associated with handheld devices (i.e., mobile phones, PDAs, handheld game consoles, mobile media players, digital cameras, etc.). The computational requirements required to achieve adequate image quality of scaled output images can be quite extensive, and in some cases, becomes the overall system-level bottleneck. This is especially important in applications where the user is interactively viewing and resizing images in real time. High-speed image scaling operations are also required in multi-function reprographics (Multi-Function Device) applications, where the rated speed of the document scanner ultimately dictates the rate at which the video must be processed.
In the past, image scaling was often performed in hardware, mainly because the generally available microprocessors could not achieve the rated processing speeds needed for image scaling operations. However, as microprocessors improve, their processing speeds have become sufficient for image scaling operation. Therefore, a need in the art exists for software-based image path (SWIP) solutions to replace traditional hardware-based solutions.